package com.ce.pms.customer.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;

import com.ce.pms.base.dao.impl.PmsBaseDaoImpl;
import com.ce.pms.common.model.SysInfo;
import com.ce.pms.common.model.SysrefcodeDO;
import com.ce.pms.customer.dao.IInterestDao;
import com.ce.pms.customer.model.InterestDO;
import com.ce.pms.exception.BusinessException;
/**
 *
 * 功能描述: InterestDaoImpl
 * <p>版权所有：中企动力
 * <p>未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author  付湘辉
 * Created on：  2008-5-30
 */
public class InterestDaoImpl extends PmsBaseDaoImpl<InterestDO> implements IInterestDao {

	/**
	 *
	 * 功能描述: 获取所有有效的兴趣爱好列表
	 *
	 * @author 付湘辉
	 * Created on:2008-5-30
	 *
	 * 修改原因：
	 * @return List<InterestDO> 兴趣爱好
	 */
	@SuppressWarnings(value = "unchecked")
	public List<InterestDO> getAllInterestList(){
		Criteria cri = crtieriaFindBy("validity", SysInfo.VALIDITY);
		List list = queryObjects(cri);
		return list;
	}

	/**
	 *
	 * 功能描述: 获取有效的兴趣爱好列表，idString是指定的id列表
	 *
	 * @author 付湘辉
	 * Created on:2008-5-30
	 *
	 * 修改原因：
	 * @return List<InterestDO> 兴趣爱好
	 */
	@SuppressWarnings(value = "unchecked")
	public List<InterestDO> getAllInterestList(String idString){
		List<InterestDO> list = new ArrayList<InterestDO>();
		if (!Pattern.matches(SysrefcodeDO.REGEX_ID_JOIN_STRING, idString)) {
//			throw new BusinessException("common:id_join_string_format_exception",
//						BusinessException.WARNING);
			return list;
		}

		String queryStr = "FROM InterestDO ind WHERE ind.validity=1 AND ind.id in(:idString) ";
		queryStr = queryStr.replace(":idString", idString);
		Query query = super.createQuery(queryStr);

		list = query.list();

		return list;
	}

	/**
	 *
	 * 功能描述: 根据指定编码 查询相应的兴趣爱好项
	 *
	 * @author 付湘辉
	 * Created on:2008-6-11
	 *
	 * 修改原因：
	 * @param code
	 * @return InterestDO 返回结果
	 */
	public InterestDO getInterestByCode(String code){
		InterestDO interest = null;
		String queryStr = "FROM InterestDO ind WHERE ind.code=? AND ind.validity='1' ";
		Query query = super.createQuery(queryStr, new String[]{code});

		interest = (InterestDO)query.uniqueResult();

		return interest;
	}



}
